package cn.alone.SwordToOffer;

/**
 * Created by RojerAlone on 2017-09-02.
 * 矩形覆盖
 * 斐波那契数列的变种
 * 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形，总共有多少种方法？
 */
public class RectCover {

    public int RectCover(int target) {
        if (target <= 0) {
            return 0;
        } else if (target == 1) { // 如果是 2 * 1 的矩形，只有一种方法
            return 1;
        } else if (target == 2) { // 如果是 2 * 2 的矩形，有两种方法
            return 2;
        } else {
            return RectCover(target - 1) + RectCover(target - 2);
        }
    }

}
